#include "nivelRed.h"

#define NIVEL_RED_OK 0
#define NIVEL_RED_ERROR -1

short nivelRedInicializado=0;

int nivelRed_inicializa()
{
	if(nivelRedInicializado){
		return NIVEL_RED_OK;
	}
	
	if(arp_inicializa()!=0){
		return NIVEL_RED_ERROR;
	}
	
	if(ip_inicializa()!=0){
		return NIVEL_RED_ERROR;
	}
	
	if(icmp_inicializa()!=0){
		return NIVEL_RED_ERROR;
	}
	
	nivelRedInicializado=1;
	
	return NIVEL_RED_OK;
}

int nivelRed_finaliza()
{
	int status;
	
	if(!nivelRedInicializado){
		return NIVEL_RED_OK;
	}
	
	if(icmp_finaliza()!=0){
		status=NIVEL_RED_ERROR;
	}
	
	if(ip_finaliza()!=0){
		status=NIVEL_RED_ERROR;
	}
	
	if(arp_finaliza()!=0){
		status=NIVEL_RED_ERROR;
	}
	
	return status;
}
